class ProdutosController < ApplicationController

  # FIXME restfulx não consegue enviar solicitação
  skip_before_filter :verify_authenticity_token

  filter_access_to :index, :new, :create, :attribute_check => true, :load_method => :get_nested
  filter_access_to :show, :edit, :update, :destroy, :registrar_analise,
                   :attribute_check => true, :load_method => :get_not_nested

  def index
    @produtos = @atividade.produtos
  end

  def new
    @produto = @atividade.produtos.new
  end

  def create
    @produto = @atividade.produtos.new(params[:produto])

    if @produto.save
      flash[:notice] = 'Produto cadastrado com sucesso.'
      redirect_to @pleito.reducao_fixa? ? [@produto, :producoes] : [@atividade, :produtos]
    else
      render :action => "new"
    end
  end

  def update
    if @produto.update_attributes(params[:produto])
      flash[:notice] = 'Produto atualizado com sucesso.'
      redirect_to @produto
    else
      render :action => "edit"
    end
  end

  #FIXME Extrair pra superclasse
  def registrar_analise
    @produto.registrar_analise(params)
    render :fxml => @produto
  end

  def destroy
    @produto.destroy
    redirect_to [@produto.atividade, :produtos]
  end

  private

  def get_not_nested
    @produto = Produto.find(params[:id])
    get_pleito
  end

  def get_nested
    @atividade = Atividade.find(params[:atividade_id])
    get_pleito
  end

  def get_pleito
    @atividade ||= @produto.atividade
    @caracterizacao = @atividade.caracterizacao
    @pleito = @caracterizacao.pleito
  end

end
